package service;

import java.util.ArrayList;

import bean.CondicionPago;
import bean.VOList;
import bean.vo.CondicionPagoVO;

@SuppressWarnings({"unchecked"})
public abstract class ServiciosCondicionPago {

	protected static CondicionPago buscarCondicionDePago (String nombre) throws Exception {
		CondicionPago cond = (CondicionPago) SistemaCVR.getInstancia().buscarEntidad(new CondicionPago(nombre));
		return cond;
	}
	
	public static CondicionPagoVO buscarCondicionDePago (CondicionPagoVO cp) throws Exception {
		CondicionPago cond = ServiciosCondicionPago.buscarCondicionDePago(cp.getNombre());
		return cond != null ? cond.getVO() : null;
	}
	
	public static ArrayList<CondicionPagoVO> getCondicionesPago() throws Exception{
		return new VOList<CondicionPagoVO>().getVoList(SistemaCVR.getInstancia().getEntidades(CondicionPago.class.getName()));
	}
	
	public static void crearCondicionDePago (CondicionPagoVO cp) throws Exception {
		if (ServiciosCondicionPago.buscarCondicionDePago(cp.getNombre()) == null) {
			CondicionPago cond = new CondicionPago(cp.getNombre(), cp.getCantidadDias(), cp.getPorcentajeRecargo());
			SistemaCVR.getInstancia().agregarEntidad(cond);
		} else {
			throw new Exception("ERROR - Ya existe una condicion de pago con el nombre ingresado.");
		}
	}
	
	public static void elimiarCondicionDePago (CondicionPagoVO cp) throws Exception {
		CondicionPago cond = ServiciosCondicionPago.buscarCondicionDePago(cp.getNombre());
		if (cond != null ){
			SistemaCVR.getInstancia().eliminarEntidad(cond);
		} else {
			throw new Exception("ERROR - No existe la condicion de pago seleccionada.");
		}
	}
	
}
